{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "machineHack_buyer's time.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "toc_visible": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "z9mPyk4juDzR"
      },
      "source": [
        "# Data Preprocessing and EDA"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "jIG44U36UFQ0"
      },
      "source": [
        "import numpy as np \r\n",
        "import pandas as pd\r\n",
        "import matplotlib.pyplot as plt\r\n",
        "import seaborn as sns"
      ],
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "utH1YQPSXFfO"
      },
      "source": [
        "train_data=pd.read_csv(\"/content/drive/MyDrive/Machinehack competitions/Buyer's time Prediction/ParticipantData_BTPC/Train.csv\")\r\n",
        "test_data=pd.read_csv(\"/content/drive/MyDrive/Machinehack competitions/Buyer's time Prediction/ParticipantData_BTPC/Test.csv\")\r\n",
        "sample_data=pd.read_csv(\"/content/drive/MyDrive/Machinehack competitions/Buyer's time Prediction/ParticipantData_BTPC/Sample Submission.csv\")"
      ],
      "execution_count": 2,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 363
        },
        "id": "dpmdJDxBXzEJ",
        "outputId": "d096d7bf-09ef-4bc4-942f-631a22a3a370"
      },
      "source": [
        "train_data.head()"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>session_id</th>\n",
              "      <th>session_number</th>\n",
              "      <th>client_agent</th>\n",
              "      <th>device_details</th>\n",
              "      <th>date</th>\n",
              "      <th>purchased</th>\n",
              "      <th>added_in_cart</th>\n",
              "      <th>checked_out</th>\n",
              "      <th>time_spent</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>57f879e70d3c5fc2a98102d64c9fd84e</td>\n",
              "      <td>715</td>\n",
              "      <td>Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...</td>\n",
              "      <td>Desktop - Chrome</td>\n",
              "      <td>2020-01-22</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>236.886</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>a5442b0c7c33d0a811e7661e556b2de8</td>\n",
              "      <td>55</td>\n",
              "      <td>Product/8.0 iPhone/8.1.3</td>\n",
              "      <td>iPhone - iOS</td>\n",
              "      <td>2020-02-27</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1277.455</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>305cb1486ed8610c00b37007926cb2c4</td>\n",
              "      <td>11</td>\n",
              "      <td>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like ...</td>\n",
              "      <td>iPhone - MobileWeb</td>\n",
              "      <td>2019-08-01</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>21.704</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>f2c1ecc9993f0071df91ba178450498c</td>\n",
              "      <td>2794</td>\n",
              "      <td>Mozilla/5.0 (compatible; MSIE 9.0; Windows NT ...</td>\n",
              "      <td>Desktop - IE</td>\n",
              "      <td>2019-12-30</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>455.201</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>e460830ae295e55d2216ebdc761ab9a6</td>\n",
              "      <td>3674</td>\n",
              "      <td>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like ...</td>\n",
              "      <td>iPhone - Web</td>\n",
              "      <td>2019-09-10</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1164.877</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                         session_id  session_number  ... checked_out time_spent\n",
              "0  57f879e70d3c5fc2a98102d64c9fd84e             715  ...           0    236.886\n",
              "1  a5442b0c7c33d0a811e7661e556b2de8              55  ...           0   1277.455\n",
              "2  305cb1486ed8610c00b37007926cb2c4              11  ...           0     21.704\n",
              "3  f2c1ecc9993f0071df91ba178450498c            2794  ...           0    455.201\n",
              "4  e460830ae295e55d2216ebdc761ab9a6            3674  ...           0   1164.877\n",
              "\n",
              "[5 rows x 9 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 353
        },
        "id": "3E0aWkbH0eM_",
        "outputId": "8ed08441-014c-4bc7-c9cb-77c3a18d4652"
      },
      "source": [
        "sns.boxplot(train_data['time_spent'])"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f6aed167048>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 4
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW0AAAEHCAYAAABlbhceAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAATQklEQVR4nO3dfXBc1XnH8d+DpMiqTYqRXQOCRIBggISEgJqWJJNhEhj8wgSmhWlm0rHTZgotwTZmTAvjHdsaYAgwDBhTCm4nBbelBBMoLWBPTUsxY9emcgPCSXlZQBkQGGRBCMavkk//uGfXq0W7Wkn79ijfz4xGd+8995xnz3p/Xt0r3WshBAEAfDii1gUAAEpHaAOAI4Q2ADhCaAOAI4Q2ADjSOJbGM2bMCO3t7RUqBQAmp+3bt+8KIcwsR19jCu329nZ1d3eXY1wA+I1hZr8sV18cHgEARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYARwhtAHCE0AYAR8Z0j8jxWr16tZ599llJUltbW3Z9R0eHFi5cWI0SAGBSqEpop9Np9e8akBoatXN/MmTDng+qMTQATCpVCW1JUkOjhn6rVXtPmytJann5qaoNDQCTBce0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcARQhsAHCG0AcCRqoR2X1+fdGiopLarV6/W6tWrK1wRAPjUWI1B9u7dK4VQUtt0Ol3hagDALw6PAIAjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAOEJoA4AjhDYAONJY6wLy9ff365133tF5551X61LU1NSkgwcPqrGxUYODg9n1ra2t2r17tyTJzHT33Xdr+vTpWrp0qXp7e7VkyRLdc8892rdvn8xMS5Ys0X333aelS5fq1ltv1aFDhzRjxgz19fXpmGOO0XvvvacQglasWKHHHntMixYt0u233y4z0w033KAPP/xQixcv1qpVqyRJCxcu1AknnKArrrhCy5cvV1dXl9auXasVK1aotbU1W+fAwIBSqVS2n9xtY2mTadfV1aVFixbprrvu0qJFi3TLLbforbfe0uc+9zndfPPNo+6bX186nc4+l/z98/cp1Ec5FRtjpG2F2o9WazWeSz2MOVnU29w1rFy5suTGa9asWXn55ZePeZAHH3xQBw4eVGiepsEZp0iSmna9puOmT9OcOXOGtV29evWY+6+UQ4cODfuesXfvXg0NDWloaEiDg4Pq6enRzp07tW3bNknS1q1bh4X81q1bdeDAAW3evFkHDhzQ0NCQPv74Y0nKhr8kbd68WTt37lRPT4/S6bT6+/u1f/9+rVu3Tv39/erp6dGmTZu0a9cuDQwMaMuWLfrkk0+0ZcsWvf3229q3b5/OPffcbH/33nuvNm/enO0nd9tY2mTaPffcc+rp6dGrr76qnp4evfHGGxocHNTAwEBJ++bXd80112SfS/7++fsU6qOcio0x0rZC7UertRrPpR7GnCzKMXddXV3vrly5ck056qmrwyOPP/54rUsYl97eXj3xxBPZxyGEYdszj3ODfCSDg4MKIai3tze77sknn8w+7u3tHbYtE/i7d+9WCEEbNmzQwMCApOTTwfr167Nt169fn92WUUqbTLsNGzZka8uvUZKeeuqpUffNrS+dTg/rI3f//H3S6fSIfZRToToLbSvUvlg/pWyvhFqMOVnU49zVLLSP2PdrpdNpLV68OPt1xx131KqcCcv/NF4uowV9rqGhIa1du1aS9MADDwzb9+DBg9ltGaW0ybQb7fmVsm9ufTfeeGPB/fP3ufHGG0fso5wK1VloW6H2xfopZXsl1GLMyaIe527U0Dazy82s28y6+/v7q1ETxmlwcFAbN26UJD399NPDPvGHELLbMkppk2lXyn8eo+2bW1/+J/Xc/fP36e3tHbGPcipUZ6FthdoX66eU7ZVQizEni3qcu1FDO4Sw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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "otFKZgFbkrBx"
      },
      "source": [
        "train_data.drop(train_data[train_data['time_spent']>27000].index,axis=0,inplace=True)"
      ],
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 298
        },
        "id": "1iS9MO8TMQzU",
        "outputId": "ea7936c3-43db-4239-9577-1a704dbf84a1"
      },
      "source": [
        "sns.scatterplot(x=train_data['session_number'],y=train_data['time_spent'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f3581299940>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 438
        },
        "id": "akxfKrmFMRDw",
        "outputId": "db378290-a762-4cb1-f8f2-23136b810dc9"
      },
      "source": [
        "fig=plt.figure(figsize=(26,8))\r\n",
        "sns.countplot(train_data['device_details'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f3580a75710>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1872x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 443
        },
        "id": "pDumzbtgMRTQ",
        "outputId": "076b4523-9fb3-4600-b63e-2d73c5c7988f"
      },
      "source": [
        "fig=plt.figure(figsize=(26,8))\r\n",
        "sns.countplot(train_data['purchased'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7f3580a399b0>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 9
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1872x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 444
        },
        "id": "uNz-r8ROMRjH",
        "outputId": "f8fc6544-a77a-452c-b941-6014b1908c2c"
      },
      "source": [
        "fig=plt.figure(figsize=(26,8))\r\n",
        "sns.countplot(train_data['added_in_cart'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7fe4d194a128>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 19
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1872x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 444
        },
        "id": "mYFY1essMRxP",
        "outputId": "83c7da77-a110-4781-b446-f8e2af6681f4"
      },
      "source": [
        "fig=plt.figure(figsize=(26,8))\r\n",
        "sns.countplot(train_data['checked_out'])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variable as a keyword arg: x. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
            "  FutureWarning\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7fe4d18c54a8>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1872x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "id": "6ISIiHj_vHDR",
        "outputId": "9c0f2894-af08-4550-cecd-8327fb2ba1a5"
      },
      "source": [
        "train_data['client_agent'][4]"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 49
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Titl0M-JZMMN"
      },
      "source": [
        "# Metric"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OdcthxGFngMe"
      },
      "source": [
        "import numpy as np\r\n",
        "import math\r\n",
        "from keras import backend as K\r\n",
        "import tensorflow as tf\r\n",
        "from sklearn.metrics import mean_squared_log_error, make_scorer\r\n",
        "\r\n",
        "def rmsle(true_y, predicted_y):\r\n",
        "  true_y_=np.abs(true_y)\r\n",
        "  predicted_y_=np.abs(predicted_y)\r\n",
        "  score=mean_squared_log_error(true_y_,predicted_y_)\r\n",
        "  return np.sqrt(score)\r\n",
        "\r\n",
        "RMSLE=make_scorer(rmsle)"
      ],
      "execution_count": 6,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AU2IqsG9ZPWK"
      },
      "source": [
        "# Data Preprocessing"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9_cYnfWhZTHq"
      },
      "source": [
        "total_df=pd.concat([train_data.drop(['session_id','time_spent','client_agent'],axis=1),test_data.drop(['session_id','client_agent'],axis=1)],axis=0,ignore_index=True)"
      ],
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1pTZ5ptd2ccE",
        "outputId": "a8838fd1-2abd-4ca0-d1fc-089ebb892db3"
      },
      "source": [
        "total_df.info()"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 7754 entries, 0 to 7753\n",
            "Data columns (total 6 columns):\n",
            " #   Column          Non-Null Count  Dtype \n",
            "---  ------          --------------  ----- \n",
            " 0   session_number  7754 non-null   int64 \n",
            " 1   device_details  7754 non-null   object\n",
            " 2   date            7754 non-null   object\n",
            " 3   purchased       7754 non-null   int64 \n",
            " 4   added_in_cart   7754 non-null   int64 \n",
            " 5   checked_out     7754 non-null   int64 \n",
            "dtypes: int64(4), object(2)\n",
            "memory usage: 363.6+ KB\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bIW7scObX9-k"
      },
      "source": [
        "total_df['date'] = pd.to_datetime(total_df.date, format='%Y-%m-%d')"
      ],
      "execution_count": 9,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "J5iko5zAZmKs",
        "outputId": "f6057a91-fde8-4265-cc20-c6abc0008388"
      },
      "source": [
        "total_df['year'] = total_df['date'].dt.year\r\n",
        "total_df['month'] = total_df['date'].dt.month\r\n",
        "total_df['week'] = total_df['date'].dt.week\r\n",
        "total_df['Day'] = total_df['date'].dt.day\r\n",
        "total_df['dayofweek'] = total_df['date'].dt.dayofweek"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:3: FutureWarning: Series.dt.weekofyear and Series.dt.week have been deprecated.  Please use Series.dt.isocalendar().week instead.\n",
            "  This is separate from the ipykernel package so we can avoid doing imports until\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 195
        },
        "id": "40hM486lbF_7",
        "outputId": "848aac45-5c88-42ed-e422-dc458003d735"
      },
      "source": [
        "total_df.head(n=5)"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>session_number</th>\n",
              "      <th>device_details</th>\n",
              "      <th>date</th>\n",
              "      <th>purchased</th>\n",
              "      <th>added_in_cart</th>\n",
              "      <th>checked_out</th>\n",
              "      <th>year</th>\n",
              "      <th>month</th>\n",
              "      <th>week</th>\n",
              "      <th>Day</th>\n",
              "      <th>dayofweek</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>715</td>\n",
              "      <td>Desktop - Chrome</td>\n",
              "      <td>2020-01-22</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2020</td>\n",
              "      <td>1</td>\n",
              "      <td>4</td>\n",
              "      <td>22</td>\n",
              "      <td>2</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>55</td>\n",
              "      <td>iPhone - iOS</td>\n",
              "      <td>2020-02-27</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2020</td>\n",
              "      <td>2</td>\n",
              "      <td>9</td>\n",
              "      <td>27</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>11</td>\n",
              "      <td>iPhone - MobileWeb</td>\n",
              "      <td>2019-08-01</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>8</td>\n",
              "      <td>31</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2794</td>\n",
              "      <td>Desktop - IE</td>\n",
              "      <td>2019-12-30</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>12</td>\n",
              "      <td>1</td>\n",
              "      <td>30</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>3674</td>\n",
              "      <td>iPhone - Web</td>\n",
              "      <td>2019-09-10</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>9</td>\n",
              "      <td>37</td>\n",
              "      <td>10</td>\n",
              "      <td>1</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   session_number      device_details       date  ...  week  Day  dayofweek\n",
              "0             715    Desktop - Chrome 2020-01-22  ...     4   22          2\n",
              "1              55        iPhone - iOS 2020-02-27  ...     9   27          3\n",
              "2              11  iPhone - MobileWeb 2019-08-01  ...    31    1          3\n",
              "3            2794        Desktop - IE 2019-12-30  ...     1   30          0\n",
              "4            3674        iPhone - Web 2019-09-10  ...    37   10          1\n",
              "\n",
              "[5 rows x 11 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "84IIpNdqbIuF",
        "outputId": "5db42816-0c1d-48e2-ecd1-404ba7d01f06"
      },
      "source": [
        "total_df['device_details'].unique()"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array(['Desktop - Chrome', 'iPhone - iOS', 'iPhone - MobileWeb',\n",
              "       'Desktop - IE', 'iPhone - Web', 'Android Phone - Android',\n",
              "       'Desktop - Firefox', 'Android Tablet - Web', 'iPad - Web',\n",
              "       'Other - Other', 'Desktop - Safari', 'Android Phone - Web',\n",
              "       'iPad - iOS', 'Android Phone - MobileWeb', 'Unknown - MobileWeb',\n",
              "       'Android Tablet - Android', 'Android Tablet - MobileWeb'],\n",
              "      dtype=object)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 12
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2m4D6P33bbeT"
      },
      "source": [
        "def return_initial(s):\r\n",
        "  t=s.split('-')\r\n",
        "  return t[0]\r\n",
        "\r\n",
        "total_df['device_details_name']=total_df['device_details'].apply(return_initial)"
      ],
      "execution_count": 14,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5ZRqIMhKglPM"
      },
      "source": [
        "def return_last(s):\r\n",
        "  t=s.split('-')\r\n",
        "  return t[1]\r\n",
        "\r\n",
        "total_df['device_details_browser']=total_df['device_details'].apply(return_last)"
      ],
      "execution_count": 16,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 299
        },
        "id": "SSSe1hadhSM_",
        "outputId": "bc4cd724-f593-4c7f-e42e-4b86d7a3b207"
      },
      "source": [
        "total_df.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>session_number</th>\n",
              "      <th>device_details</th>\n",
              "      <th>date</th>\n",
              "      <th>purchased</th>\n",
              "      <th>added_in_cart</th>\n",
              "      <th>checked_out</th>\n",
              "      <th>year</th>\n",
              "      <th>month</th>\n",
              "      <th>week</th>\n",
              "      <th>Day</th>\n",
              "      <th>dayofweek</th>\n",
              "      <th>device_details_name</th>\n",
              "      <th>device_details_browser</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>715</td>\n",
              "      <td>Desktop - Chrome</td>\n",
              "      <td>2020-01-22</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2020</td>\n",
              "      <td>1</td>\n",
              "      <td>4</td>\n",
              "      <td>22</td>\n",
              "      <td>2</td>\n",
              "      <td>Desktop</td>\n",
              "      <td>Chrome</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>55</td>\n",
              "      <td>iPhone - iOS</td>\n",
              "      <td>2020-02-27</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2020</td>\n",
              "      <td>2</td>\n",
              "      <td>9</td>\n",
              "      <td>27</td>\n",
              "      <td>3</td>\n",
              "      <td>iPhone</td>\n",
              "      <td>iOS</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>11</td>\n",
              "      <td>iPhone - MobileWeb</td>\n",
              "      <td>2019-08-01</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>8</td>\n",
              "      <td>31</td>\n",
              "      <td>1</td>\n",
              "      <td>3</td>\n",
              "      <td>iPhone</td>\n",
              "      <td>MobileWeb</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2794</td>\n",
              "      <td>Desktop - IE</td>\n",
              "      <td>2019-12-30</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>12</td>\n",
              "      <td>1</td>\n",
              "      <td>30</td>\n",
              "      <td>0</td>\n",
              "      <td>Desktop</td>\n",
              "      <td>IE</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>3674</td>\n",
              "      <td>iPhone - Web</td>\n",
              "      <td>2019-09-10</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>2019</td>\n",
              "      <td>9</td>\n",
              "      <td>37</td>\n",
              "      <td>10</td>\n",
              "      <td>1</td>\n",
              "      <td>iPhone</td>\n",
              "      <td>Web</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   session_number  ... device_details_browser\n",
              "0             715  ...                 Chrome\n",
              "1              55  ...                    iOS\n",
              "2              11  ...              MobileWeb\n",
              "3            2794  ...                     IE\n",
              "4            3674  ...                    Web\n",
              "\n",
              "[5 rows x 13 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 92
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "PzOYaTL9hU5T",
        "outputId": "0c74eb1d-a894-42e1-9aec-8b4831933d7c"
      },
      "source": [
        "total_df['device_details_browser'].unique()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([' Chrome', ' iOS', ' MobileWeb', ' IE', ' Web', ' Android',\n",
              "       ' Firefox', ' Other', ' Safari'], dtype=object)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 93
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wEEXgNX4iMMk",
        "outputId": "23092b82-d5b9-4d4e-948f-338d9cbf59cb"
      },
      "source": [
        "total_df.info()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 7754 entries, 0 to 7753\n",
            "Data columns (total 13 columns):\n",
            " #   Column                  Non-Null Count  Dtype         \n",
            "---  ------                  --------------  -----         \n",
            " 0   session_number          7754 non-null   int64         \n",
            " 1   device_details          7754 non-null   object        \n",
            " 2   date                    7754 non-null   datetime64[ns]\n",
            " 3   purchased               7754 non-null   int64         \n",
            " 4   added_in_cart           7754 non-null   int64         \n",
            " 5   checked_out             7754 non-null   int64         \n",
            " 6   year                    7754 non-null   int64         \n",
            " 7   month                   7754 non-null   int64         \n",
            " 8   week                    7754 non-null   int64         \n",
            " 9   Day                     7754 non-null   int64         \n",
            " 10  dayofweek               7754 non-null   int64         \n",
            " 11  device_details_name     7754 non-null   object        \n",
            " 12  device_details_browser  7754 non-null   object        \n",
            "dtypes: datetime64[ns](1), int64(9), object(3)\n",
            "memory usage: 787.6+ KB\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nrIuqGWoqv9W"
      },
      "source": [
        "def mapper(name,df,how): # Custom Function for Label encoding.\r\n",
        "  if how=='nums':\r\n",
        "    sam_dict={}\r\n",
        "    num=1\r\n",
        "    for loc in df[name].unique():\r\n",
        "      sam_dict.update([(loc,num)])\r\n",
        "      num=num+1\r\n",
        "    df[name]=df[name].map(sam_dict)\r\n",
        "  elif how=='proba':\r\n",
        "    an_dict={}\r\n",
        "    for dec in df[name].unique():\r\n",
        "      an_dict.update([(dec,int(df[name].value_counts()[dec]))])\r\n",
        "    df[name]=df[name].map(an_dict)\r\n",
        "    df_max=df[name].max()\r\n",
        "    df[name]=df[name].apply(lambda x:x/df_max)"
      ],
      "execution_count": 18,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3A1D4QzOrvte"
      },
      "source": [
        "mapper('device_details',total_df,'nums')\r\n",
        "mapper('device_details_name',total_df,'nums')\r\n",
        "mapper('device_details_browser',total_df,'nums')"
      ],
      "execution_count": 19,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zKW5ssCL2JAw",
        "outputId": "f405ca9d-6fd5-4379-f05b-2191b218c483"
      },
      "source": [
        "total_df['date'].max()"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Timestamp('2020-04-23 00:00:00')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0uDqqNs92I5V"
      },
      "source": [
        "import datetime as dt\r\n",
        "today_date = dt.date(2020,4,23)"
      ],
      "execution_count": 21,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6go074tm2IwT"
      },
      "source": [
        "total_df['date'] = pd.DatetimeIndex(total_df.date).date"
      ],
      "execution_count": 22,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GIV8yeAV2IoX"
      },
      "source": [
        "total_df['Recency'] = total_df.date.apply(lambda x : (today_date - x).days)"
      ],
      "execution_count": 23,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8dAOg_fN2IMU",
        "outputId": "c1d5f71e-5608-40e1-9c89-c9d6f22b0a2a"
      },
      "source": [
        "total_df.info()"
      ],
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "<class 'pandas.core.frame.DataFrame'>\n",
            "RangeIndex: 7754 entries, 0 to 7753\n",
            "Data columns (total 14 columns):\n",
            " #   Column                  Non-Null Count  Dtype \n",
            "---  ------                  --------------  ----- \n",
            " 0   session_number          7754 non-null   int64 \n",
            " 1   device_details          7754 non-null   int64 \n",
            " 2   date                    7754 non-null   object\n",
            " 3   purchased               7754 non-null   int64 \n",
            " 4   added_in_cart           7754 non-null   int64 \n",
            " 5   checked_out             7754 non-null   int64 \n",
            " 6   year                    7754 non-null   int64 \n",
            " 7   month                   7754 non-null   int64 \n",
            " 8   week                    7754 non-null   int64 \n",
            " 9   Day                     7754 non-null   int64 \n",
            " 10  dayofweek               7754 non-null   int64 \n",
            " 11  device_details_name     7754 non-null   int64 \n",
            " 12  device_details_browser  7754 non-null   int64 \n",
            " 13  Recency                 7754 non-null   int64 \n",
            "dtypes: int64(13), object(1)\n",
            "memory usage: 848.2+ KB\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vJzpdCxop4Hg",
        "outputId": "97827cbf-76e7-4f27-f2fd-bfa588cc75c5"
      },
      "source": [
        "total_df['session_number'].nunique()"
      ],
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "700"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 25
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Gz2fmaMop0Qj",
        "outputId": "113d2d30-0eb5-4ee4-9694-cc96dc54bf78"
      },
      "source": [
        "total_df.columns"
      ],
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index(['session_number', 'device_details', 'date', 'purchased',\n",
              "       'added_in_cart', 'checked_out', 'year', 'month', 'week', 'Day',\n",
              "       'dayofweek', 'device_details_name', 'device_details_browser',\n",
              "       'Recency'],\n",
              "      dtype='object')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 26
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DlY36GcIpv-I"
      },
      "source": [
        "cat_feats=['session_number','device_details','purchased','added_in_cart','checked_out','year','month','week','Day','dayofweek','device_details_name','device_details_browser']"
      ],
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "SiRPmmkbfMoZ",
        "outputId": "242090fb-b353-428e-9e8e-72286c5990ff"
      },
      "source": [
        "train_data.shape"
      ],
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(5427, 9)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 28
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cp6OB-xE2ICp"
      },
      "source": [
        "X_train=total_df.drop('date',axis=1)[0:5427]\r\n",
        "X_test=total_df.drop('date',axis=1)[5427:]\r\n",
        "Y=train_data['time_spent']"
      ],
      "execution_count": 29,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ijlojpH-x_x-",
        "outputId": "78f4b372-046a-4aa7-f035-bf9e43296e0e"
      },
      "source": [
        "X_train.shape"
      ],
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(5427, 13)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 30
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Snwf12s8rOPh"
      },
      "source": [
        "X_train['time_spent']=Y"
      ],
      "execution_count": 32,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UbLv5mf12H5B"
      },
      "source": [
        "def mean_encoder(var_name,target_name):\r\n",
        "  var_unique=list(X_train[var_name].unique())\r\n",
        "  var_dict={}\r\n",
        "  for item in var_unique:\r\n",
        "    value=X_train[X_train[var_name]==item][target_name].mean()\r\n",
        "    var_dict.update([(item,value)])\r\n",
        "  return var_dict"
      ],
      "execution_count": 31,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6H2MWXjSokDL"
      },
      "source": [
        "for tar in ['time_spent','Recency']:\r\n",
        "  for var in cat_feats:\r\n",
        "    X_train[var+'_mean']=X_train[var].map(mean_encoder(var,tar))\r\n",
        "    X_test[var+'_mean']=X_test[var].map(mean_encoder(var,tar))"
      ],
      "execution_count": 33,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_zoi1VjAoj4n"
      },
      "source": [
        "X_train.drop('time_spent',axis=1,inplace=True)"
      ],
      "execution_count": 34,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "xzD0ZOABojvK",
        "outputId": "ac17f60a-40b0-4224-9c1d-4bebdca6f20b"
      },
      "source": [
        "X_train.shape, X_test.shape"
      ],
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((5427, 25), (2327, 25))"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 35
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7g8X_VF_-0BN"
      },
      "source": [
        "for cols in X_test.columns:\r\n",
        "    try:\r\n",
        "        X_test[cols].replace([np.inf,-np.inf],np.nan,inplace=True)\r\n",
        "        X_test[cols]=X_test[cols].fillna(np.mean(X_test[cols]))\r\n",
        "    except:\r\n",
        "        continue"
      ],
      "execution_count": 36,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vyFFrlXMDOy8"
      },
      "source": [
        "'''\r\n",
        "from sklearn.linear_model import BayesianRidge, LinearRegression, LassoLars, Ridge, ElasticNet, Lasso\r\n",
        "from sklearn.model_selection import cross_val_score\r\n",
        "'''"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "M688KdpxjGvD"
      },
      "source": [
        "# Using LightGBM"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fQXBKQSyixxQ",
        "outputId": "92293b6e-036e-40cb-edb4-dafc562044c5"
      },
      "source": [
        "! pip install lightgbm==3.0"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting lightgbm==3.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/25/47/f8ef524e15ff86f5246cb4e1cee200b747ddb2536429fa021cc5f17ea40a/lightgbm-3.0.0-py2.py3-none-manylinux1_x86_64.whl (1.7MB)\n",
            "\u001b[K     |████████████████████████████████| 1.8MB 5.2MB/s \n",
            "\u001b[?25hRequirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from lightgbm==3.0) (1.4.1)\n",
            "Requirement already satisfied: scikit-learn!=0.22.0 in /usr/local/lib/python3.6/dist-packages (from lightgbm==3.0) (0.22.2.post1)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from lightgbm==3.0) (1.19.4)\n",
            "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn!=0.22.0->lightgbm==3.0) (1.0.0)\n",
            "Installing collected packages: lightgbm\n",
            "  Found existing installation: lightgbm 2.2.3\n",
            "    Uninstalling lightgbm-2.2.3:\n",
            "      Successfully uninstalled lightgbm-2.2.3\n",
            "Successfully installed lightgbm-3.0.0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oAVdefusjKEJ"
      },
      "source": [
        "import lightgbm as lgb"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kKqk1NkhjKJt"
      },
      "source": [
        "#from sklearn.model_selection import GridSearchCV"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "HAxIR-xKjKRU"
      },
      "source": [
        "#lgb_params={'num_leaves':[12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],'depth':[3,4,5],'learning_rate':np.linspace(0.01,0.3,20)}"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "sHXykrRNjKZI"
      },
      "source": [
        "#lgb_grid=GridSearchCV(estimator=lgb.LGBMRegressor(),cv=3,param_grid=lgb_params,verbose=2,scoring=RMSLE)#param_grid=lgb_params"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ejvme4pIjKgi"
      },
      "source": [
        "#lgb_grid.fit(X_train,Y)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gz1l1y3XjKnj",
        "outputId": "a810ee06-3730-40ed-faf3-6c72a1bcd308"
      },
      "source": [
        "#lgb_grid.best_score_"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "2.0772340090912707"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 90
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "RtWJWtAPjKtp",
        "outputId": "5b2b77a9-f9b4-4f38-cda6-f91fca40884d"
      },
      "source": [
        "#lgb_grid.best_params_"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'depth': 3, 'learning_rate': 0.01, 'num_leaves': 12}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 91
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Z94eYM_d_nWK"
      },
      "source": [
        "#lgb_model= lgb.LGBMRegressor(depth=3,num_leaves=12,learning_rate=0.01)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "KyJuYZu2_nNd",
        "outputId": "e7dfd621-9b30-4a2f-8df3-1e52e22bc555"
      },
      "source": [
        "#lgb_model.fit(X_train,np.log1p(Y))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "LGBMRegressor(boosting_type='gbdt', class_weight=None, colsample_bytree=1.0,\n",
              "              depth=3, importance_type='split', learning_rate=0.01,\n",
              "              max_depth=-1, min_child_samples=20, min_child_weight=0.001,\n",
              "              min_split_gain=0.0, n_estimators=100, n_jobs=-1, num_leaves=12,\n",
              "              objective=None, random_state=None, reg_alpha=0.0, reg_lambda=0.0,\n",
              "              silent=True, subsample=1.0, subsample_for_bin=200000,\n",
              "              subsample_freq=0)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 110
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xuMHEB3r_4Ju"
      },
      "source": [
        "#lgb_pred=lgb_model.predict(X_test)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "YA05l9HT_4Si"
      },
      "source": [
        "#lgb_pred_df=pd.DataFrame(data=2.7182818284590452353602874713527**(lgb_pred),columns=['time_spent'])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 195
        },
        "id": "8EsySyN3_4dg",
        "outputId": "e2dcd7ef-2657-4fa5-b193-8a606838ebc4"
      },
      "source": [
        "#lgb_pred_df.head()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>time_spent</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>320.689952</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>100.384408</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>320.689952</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>128.323568</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>104.727732</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   time_spent\n",
              "0  320.689952\n",
              "1  100.384408\n",
              "2  320.689952\n",
              "3  128.323568\n",
              "4  104.727732"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 115
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EOlyEvTiiy65"
      },
      "source": [
        "# Using Catboost"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XT0P03zk1Wr4",
        "outputId": "941328d9-bef8-4d34-dc10-aeb1a6f0fb4b"
      },
      "source": [
        "! pip install catboost"
      ],
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting catboost\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/20/37/bc4e0ddc30c07a96482abf1de7ed1ca54e59bba2026a33bca6d2ef286e5b/catboost-0.24.4-cp36-none-manylinux1_x86_64.whl (65.7MB)\n",
            "\u001b[K     |████████████████████████████████| 65.8MB 60kB/s \n",
            "\u001b[?25hRequirement already satisfied: plotly in /usr/local/lib/python3.6/dist-packages (from catboost) (4.4.1)\n",
            "Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.6/dist-packages (from catboost) (1.19.4)\n",
            "Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.6/dist-packages (from catboost) (1.1.5)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from catboost) (3.2.2)\n",
            "Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from catboost) (1.4.1)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from catboost) (1.15.0)\n",
            "Requirement already satisfied: graphviz in /usr/local/lib/python3.6/dist-packages (from catboost) (0.10.1)\n",
            "Requirement already satisfied: retrying>=1.3.3 in /usr/local/lib/python3.6/dist-packages (from plotly->catboost) (1.3.3)\n",
            "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.24.0->catboost) (2018.9)\n",
            "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.24.0->catboost) (2.8.1)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->catboost) (2.4.7)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib->catboost) (1.3.1)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib->catboost) (0.10.0)\n",
            "Installing collected packages: catboost\n",
            "Successfully installed catboost-0.24.4\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_kO52sXZ1W2T"
      },
      "source": [
        "import catboost as cb\r\n",
        "from sklearn.model_selection import GridSearchCV"
      ],
      "execution_count": 38,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "E9HDToET1XDI"
      },
      "source": [
        "cb_params={'depth':[2,3],'learning_rate':np.linspace(0.0001,0.001,15),'iterations':[3,4,5,6]}"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eIGh37F41OrO"
      },
      "source": [
        "cb_grid=GridSearchCV(estimator=cb.CatBoostRegressor(verbose=0),param_grid=cb_params,scoring=RMSLE,cv=3,verbose=2)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ARRfbXip1OzA"
      },
      "source": [
        "#cb_grid.fit(X_train,Y)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "1cR1XvCCkB7f",
        "outputId": "738eb8c0-c58c-4f55-f775-e7d08fab1c7f"
      },
      "source": [
        "cb_grid.best_params_"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'depth': 2, 'iterations': 3, 'learning_rate': 0.0001}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 142
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-lsCgAlQkCFw"
      },
      "source": [
        "e=2.7182818284590452353602874713527"
      ],
      "execution_count": 50,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xH5ucpip1O-n"
      },
      "source": [
        "cb_model=cb.CatBoostRegressor(depth=2,iterations=3,learning_rate=0.00001,verbose=0)"
      ],
      "execution_count": 45,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "zDj35p681PJH",
        "outputId": "7bd9c2a1-71ac-44fe-bdb5-d7cad1e008d2"
      },
      "source": [
        "cb_model.fit(X_train,np.log1p(Y))"
      ],
      "execution_count": 46,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<catboost.core.CatBoostRegressor at 0x7f6ab8bf9d68>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 46
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vgfd_I15jUZb"
      },
      "source": [
        "cb_preds=cb_model.predict(X_test)"
      ],
      "execution_count": 47,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "v0Pqq59Sq4Gg"
      },
      "source": [
        "cb_preds_df=pd.DataFrame(data=e**(cb_preds),columns=['time_spent'])"
      ],
      "execution_count": 48,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 195
        },
        "id": "rT_7EzR0rAbw",
        "outputId": "ec910b94-f8b5-47cd-b5fa-d266d1b73deb"
      },
      "source": [
        "cb_preds_df.head()"
      ],
      "execution_count": 49,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>time_spent</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>137.922744</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>137.914725</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>137.922744</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>137.914725</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>137.914725</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "   time_spent\n",
              "0  137.922744\n",
              "1  137.914725\n",
              "2  137.922744\n",
              "3  137.914725\n",
              "4  137.914725"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 49
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "x3CiaM8v8cJC",
        "outputId": "5e7a7fdf-ae43-4492-fcf2-c0187fecbb05"
      },
      "source": [
        "cb_preds_df['time_spent'].unique()"
      ],
      "execution_count": 51,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([137.9227438 , 137.91472481, 137.92291336, 137.92813243])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 51
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UWusK7cqrDkh"
      },
      "source": [
        "cb_preds_df.to_csv('cb6.csv',index=False)"
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}